home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
u_man
/
cat1
/
ftnlist.z
/
ftnlist
Wrap
Text File
|
1998-10-30
|
29KB
|
561 lines
FTNLIST(1) Last changed: 7-25-97
NNAAMMEE
ffttnnlliisstt, ccfflliisstt - Provides a detailed Fortran program listing
SSYYNNOOPPSSIISS
ffttnnlliisstt [--aa] [--bb] [--cc] [--CC] [--dd _o_p_t_i_o_n__I_D] [--ee _o_p_t_i_o_n__I_D]
[--ff _o_p_t_i_o_n__I_D] [--gg _o_p_t_i_o_n__I_D] [--hh] [--HH] [--ii _n_u_m_b_e_r] [--nn _n_u_m_b_e_r]
[--oo _f_i_l_e_n_a_m_e] [--pp] [--rr _n_u_m_b_e_r] [--ss _n_u_m_b_e_r] [--vv _n_u_m_b_e_r] [--VV] _f_i_l_e..ff[9900]
[_f_i_l_e..TT] ...
ccfflliisstt [--aa] [--bb] [--cc] [--CC] [--dd _o_p_t_i_o_n__I_D] [--ee _o_p_t_i_o_n__I_D]
[--ff _o_p_t_i_o_n__I_D] [--gg _o_p_t_i_o_n__I_D] [--hh] [--HH] [--ii _n_u_m_b_e_r] [--nn _n_u_m_b_e_r]
[--oo _f_i_l_e_n_a_m_e] [--pp] [--rr _n_u_m_b_e_r] [--ss _n_u_m_b_e_r] [--vv _n_u_m_b_e_r] [--VV] _f_i_l_e..ff[9900]
[_f_i_l_e..TT] ...
IIMMPPLLEEMMEENNTTAATTIIOONN
ffttnnlliisstt is supported on UNICOS, UNICOS/mk, and IRIX systems
ccfflliisstt is supported on UNICOS and UNICOS/mk systems
DDEESSCCRRIIPPTTIIOONN
The ffttnnlliisstt and ccfflliisstt commands list a Fortran program with
cross-references, loop and parallel indicators, and reports from a
static call-tree analysis. ffttnnlliisstt and ccfflliisstt produce a set of
listings, tables, and reports about the target Fortran programs, as
follows:
* A source listing with associated reports, optional INCLUDE file
expansions, and cross-reference tables using command-line options.
* A set of reports and cross-reference information for each subprogram
encountered.
* A set of reports and cross reference information for each Fortran
source file encountered.
* A set of cross-reference tables and reports that are global to the
application. You can control these through command-line options.
* Summary information and a table of contents.
The ffttnnlliisstt and ccfflliisstt commands embed error messages, if any, in the
source code. They indicate jump and target directions and produce the
following tables for each compilation unit. Note that the exact
content of the report depends on the compiler you are using:
* Argument usage
* Alternate ENTRY point table
* Named constant usage
* Common block usage
* NAMELIST report
* Parallelism report
* Externals usage
* Label table
* Local variables usage
* Module usage report
* Internal subprogram report
* Interface block report
* Derived type report
* Identifier cross-reference
* ffttnnlliisstt/ccfflliisstt message report
* Compiler messages
The ffttnnlliisstt and ccfflliisstt message report contains information about the
compilation unit that might bear further investigation (for example,
arguments that are never used or local variables that are used before
they are defined).
When multiple compilation units or multiple files are presented to
ffttnnlliisstt or ccfflliisstt, it also produces a series of global reports,
including the following:
* Global call-chain messages (for example, argument type and number
checking and hidden alias analysis)
* Table of files encountered, including some statistics about each
* File/compilation unit cross-reference
* Table of compilation units encountered, including statistics about
each
* Table of external subprograms encountered
* Table of common blocks encountered
* Common block/subprogram cross-reference
* Subprogram - subprogram/common block cross-reference
* INCLUDE file/subprogram cross-reference
* NAMELIST/subprogram cross-reference
* Module cross reference
* A short identifier cross-reference (including I/O references and
SSTTOOPP and IINNCCLLUUDDEE statements)
* A local and global message summary
* A table of contents for the listing
* Some statistics per file and for the entire program
To suppress any or all of the messages, use the --ss command-line
option.
For each Fortran source file (..ff or ..ff9900 suffix) that is listed, you
must supply a corresponding compiler information file (..TT suffix). On
UNICOS and UNICOS/mk systems, you can create the CIF by executing the
ff9900(1) command with the --CCaa option. On IRIX systems, you can create
the CIF by executing the ff9900(1) command with the --cciiff option.
The ffttnnlliisstt and ccfflliisstt commands support the following options:
--aa Prints all common block members in the subprogram
cross-reference in addition to the used ones. (All members
are printed for BLOCK DATA routines.)
--bb Does not print blank lines. (Always suppresses blank lines
between subprograms.)
--cc Does not print blank comment lines.
--CC Does not print the summary. Implies that --gg 00 and --ss550011--552277
have also been specified.
--dd _o_p_t_i_o_n__I_D
Disables subprogram list options; --dd 00 disables all options.
An _o_p_t_i_o_n__I_D is base-sensitive, additive, and processed left
to right.
--ee _o_p_t_i_o_n__I_D
Enables subprogram list options; --ee 00 enables all options.
An _o_p_t_i_o_n__I_D is base-sensitive, additive, and processed left
to right. The following table shows the ID of each
subprogram list option in decimal, octal, and hexadecimal.
DDeecciimmaall OOccttaall HHeexxaaddeecciimmaall DDeeffaauulltt DDeessccrriippttiioonn
1 0000000001 0x0000001 OFF Column indicators
2 0000000002 0x0000002 ON Go_to, Come_from
arrows
4 0000000004 0x0000004 ON Subprogram trailer
line (enabled when
source list
disabled, except
with --dd00)
8 0000000010 0x0000008 ON Alternate entry
points
16 0000000020 0x0000010 ON Compiler messages
32 0000000040 0x0000020 ON Local variable
reports
64 0000000100 0x0000040 ON Named constant report
128 0000000200 0x0000080 ON Label table
256 0000000400 0x0000100 ON Common block report
(enabled when
cross-reference
enabled)
512 0000001000 0x0000200 OFF Common block variable
usage
1024 0000002000 0x0000400 ON Externals
2048 0000004000 0x0000800 ON NAMELIST report
4096 0000010000 0x0001000 OFF Long line indicators
8192 0000020000 0x0002000 ON Derived type report
(on when
cross-reference
is on)
16384 0000040000 0x0004000 ON Interface block
report
32768 0000100000 0x0008000 ON Internal subprogram
report
262144 0001000000 0x0040000 ON Argument report
524288 0002000000 0x0080000 ON Cross-reference map
8388608 0040000000 0x0800000 ON ffttnnlliisstt/ccfflliisstt
messages
16777216 0100000000 0x1000000 ON Source
On UNICOS and UNICOS/mk systems, the following additional
list options are available:
DDeecciimmaall OOccttaall HHeexxaaddeecciimmaall DDeeffaauulltt DDeessccrriippttiioonn
1048576 0004000000 0x0100000 ON Parallelism marks
2097152 0010000000 0x0200000 ON Parallelism report
4194304 0020000000 0x0400000 ON Loop marks
To select more than one list option, add the IDs of those
options and specify the total. For example, to enable
column indicators (ID = 1) and to disable compiler messages
(ID = 16) and the NAMELIST report (ID = 2048), specify one
of the following:
ftnlist -e1 -d2064
ftnlist -e1 -d0000004020
ftnlist -e1 -d0x0000810
--ff _o_p_t_i_o_n__I_D
Enables global list options; --ff 00 enables all options. An
_o_p_t_i_o_n__I_D is base-sensitive, additive, and processed left to
right.
--gg _o_p_t_i_o_n__I_D
Disables global list options; --gg 00 disables all options. An
_o_p_t_i_o_n__I_D is base-sensitive, additive, and processed left to
right. To select more than one list option, add the IDs of
those options and specify the total. The following table
shows the ID of each global list option in decimal, octal,
and hexadecimal.
DDeecciimmaall OOccttaall HHeexxaaddeecciimmaall DDeeffaauulltt DDeessccrriippttiioonn
1 0000001 0x00001 ON File header
2 0000002 0x00002 ON File common block
and NAMELIST reports
4 0000004 0x00004 ON File subprogram
report
8 0000010 0x00008 ON File statistics
16 0000020 0x00010 ON Files encountered
32 0000040 0x00020 ON File/subprogram
cross-reference
64 0000100 0x00040 ON Subprograms
encountered
128 0000200 0x00080 ON Externals
encountered
256 0000400 0x00100 ON Common block report
512 0001000 0x00200 OFF (Unused)
1024 0002000 0x00400 ON Common/subprogram
cross-reference
2048 0004000 0x00800 ON Subprogram
cross-reference
4096 0010000 0x01000 ON Identifier
cross-reference
8192 0020000 0x02000 OFF (Unused)
16384 0040000 0x04000 ON ffttnnlliisstt/ccfflliisstt messages
32768 0100000 0x08000 ON INCLUDE file
cross-reference
65536 0200000 0x10000 ON NAMELIST
cross-reference
131072 0400000 0x20000 ON Module report
--hh (Help) Displays only command-line options, suppressible
message IDs, and the list option IDs (no program execution).
--HH (Help) Displays the following abbreviated command line
options (no program execution):
aa AAllllXXRReeffPPrriinntt ii:: IInncclluuddeeFFiilleeEExxppaannssiioonn
bb BBllaannkkPPrriinnttSSuupppprreessss nn:: NNeewwPPaaggeePPeerrSSuubbPPggmm
cc CCoommmmeennttNNuullllSSuupppprreessss oo:: OOuuttppuuttFFiillee
CC CCoommppeennddiiuummDDiissaabbllee pp:: PPaacckkSSoouurrcceeLLiisstt
dd:: DDiissaabblleeSSuubbrrLLiissttOOppttiioonnss rr:: RReessttoorreeMMeessssaaggeess
ee:: EEnnaabblleeSSuubbrrLLiissttOOppttiioonnss ss:: SSuupppprreessssMMeessssaaggeess
ff:: FFnnaabblleeGGlloobbaallLLiissttOOppttiioonnss vv:: VVaarrLLiinneessPPeerrPPaaggee
gg:: GGlloobbaallLLiissttOOppttiioonnssDDiissaabbllee VV PPrriinntt VVeerrssNNoo ((ssttddeerrrr))
hhHH HHeellpp ((nnoo eexxeeccuuttiioonn))
--ii _n_u_m_b_e_r INCLUDE file expansion option. Errors follow the INCLUDE
data. For _n_u_m_b_e_r, enter the number that corresponds to the
type of INCLUDE file expansion you want.
_n_u_m_b_e_r IINNCCLLUUDDEE ffiillee eexxppaannssiioonn
00 No INCLUDE file expansion. (default)
11 Expands first appearance of first level only.
22 Expands first appearance of all first-level and
inner-level INCLUDE files.
33 Expands first appearance of INCLUDE files with
errors.
44 Expands all appearances of first-level INCLUDE
files.
55 Expands all appearances of all levels.
--nn _n_u_m_b_e_r Sets pagination for the printing of external subprograms, as
follows:
_n_u_m_b_e_r PPaaggiinnaattiioonn
1 If less than one-half page remains, go to a new
page.
2-20 Each subprogram is printed on a new page
(default).
20-_n If less than _n_u_m_b_e_r+5 lines remain, go to a new
page.
--oo _f_i_l_e_n_a_m_e
Writes the output to _f_i_l_e_n_a_m_e instead of ssttddoouutt.
--pp Allows page breaks to occur within multiline statements.
--rr _n_u_m_b_e_r Restores/enables subprogram or global message _n_u_m_b_e_r, which
can be a range (for example, --rr2222--5511 or --rr550033--550077). The
valid values for _n_u_m_b_e_r range from 1 through 77 and 501
through 531. --rr 00 restores all messages. See individual
message IDs for local and global messages in the table that
follows (with --ss option).
--ss _n_u_m_b_e_r Suppresses subprogram or global message _n_u_m_b_e_r, which can be
a range (for example, --ss2222--5511 or --ss550033--550077). The valid
ranges for _n_u_m_b_e_r are 1 through 77 and 501 through 531. --ss
00 suppresses all messages.
The following lists show the message IDs for local and
global messages. You can suppress any or all of them.
Message IDs per subprogram encountered:
1 Local Variable ____ may be used before it is defined
2 Local Variable ____ is declared but never used
3 Local Variable ____ is used but never defined
4 Local Variable ____ is defined but never used
5 Local Variable ____ is DATA-initialized but may be redefined
before used
6 Local Variable ____ is DATA-initialized but never used
7 Local Variable ____ is EQUIVALENCEd but never used
8 Multiword Variable ____ is EQUIVALENCEd but may overrun its
COMMON block-partner
9 Module Local Variable never used
10 Local Variable ____, IntSubPgm ____ overrides host version
11 No references to COMMON /____/
12 No references to the INCLUDEd COMMON /____/
13 COMMON /____/ is both INCLUDEd and explicitly declared
14 COMMON /____/ is both explicitly declared and available via
a MODULE
15 COMMON /____/ is never referenced in parent Module
21 Argument ____ is never used
22 CALL ____ has a different ArgCnt than previous CALL
encountered
23 Argument ____ is used as a dimension and is modified
24 Argument ____ has INTENT(OUT) but is neither written nor
passed
31 Warning: DO-Loop Index __ (line ___) is in COMMON
32 Warning: DO-Loop Index __ (line ___) is an Argument
33 Warning: DO-Loop Index __ (line ___) is a Module variable
41 No references to PARAMETER ____
42 No references to the INCLUDEd PARAMETER ____
43 No references to the Module PARAMETER ____
51 Subprogram ____ has neither a RETURN nor a STOP statement
52 Subprogram ____ appears to not do anything
53 __ Unused label(s)
54 FUNCTION ____ side-effect: Argument(s) are written
55 FUNCTION ____ side-effect: COMMON Block(s) are written
56 Subprogram ____ has excessive trailing blanks (off by
default)
57 Internal subprogram ____ is never called
58 Duplicate subprogram name ____
61 No references to Statement Function ____
62 Line ____ is not reachable
63 NAMELIST /____/ is never used
64 __ Longline(s) (off by default)
65 Cray Pointer/ee ____ may be used before it is defined
66 Cray Pointer/ee ____ is declared but never used
67 Cray Pointer/ee ____ is used but never defined
68 Cray Pointee ____ is defined but never used
69 Cray Pointee ____ is used but associated Pointer ____ not
defined
71 EQUIVALENCEd LocalVar ____ has same name as MODULE variable
72 EQUIVALENCEd LocalVar ____ has same name as MODULE ComBlk
variable
73 No references to imported Module ____
74 No references to USEd Module ____
75 Module ____ USEd more than once
76 USEd Module ____ also imported into parent Module
77 Duplicate Module name ____
Message ID for global call-chain concerns:
501 No callers
502 Argument count mismatch
503 Argument type mismatch
504 Expression passed as argument, Callee writes/passes
505 Expression passed as argument, Callee expects array
506 DO-Loop index sent as Argument, Callee writes/passes it
507 Argument dimensionality mismatch
508 Duplicate argument sent, Callee writes/passes one
509 Argument sent from COMMON, Callee writes that COMMON
510 Possible hidden alias
511 COMMON block length mismatch
512 COMMON block is never used
513 COMMON block is read-only
514 COMMON block is write-only
515 NAMELIST length mismatch
516 FUNCTION return value mismatch
517 F90 argument attribute mismatch
518 F90 caller: required explicit interface block missing
519 F90 dummy argument INTENT error
520 Subprogram needs RECURSIVE keyword
521 SUBROUTINE/FUNCTION CALL mismatch
522 Duplicate Subprogram name
523 Duplicate Module name
524 Argument (Subprogram) mismatch (e.g. scalar passed,
SUBROUTINE expected, etc.)
525 Argument (Derived Type) mismatch
526 Possible argument (SUBROUTINE/FUNCTION) mismatch
527 Alternate ENTRY has no callers
528 Subprogram/Interface Block mismatch
529 Common block has multiple SubPgm DATA initialization
530 Argtype (Alternate-RETURN-label) mismatch
531 FUNCTION return value dimension mismatch
--vv _n_u_m_b_e_r Sets the maximum lines per page to _n_u_m_b_e_r. The default is
the value of the LLPPPP environment variable if it is set;
otherwise, the value is 63. The valid range for _n_u_m_b_e_r is
50 through 200.
--VV Prints version information to ssttddeerrrr.
_f_i_l_e..ff[9900] [_f_i_l_e..TT]
Specifies the set of target Fortran source files and their
derived Compiler Information Files. Source file names can
end with either ..ff or ..ff9900. When the ..TT file name can be
generated by replacing the ..ff (or ..ff9900) with a ..TT, you do
not have to list the ..TT file name explicitly.
FFIILLEESS
These commands look for files named ..ffttnnlliissttrrcc or ..ccfflliissttrrcc in your
home directory and the current working directory; they concatenate
them (in that order); and they prepend the resulting string to the
command line options. The ..ffttnnlliissttrrcc or ..ccfflliissttrrcc file can contain
any combination of command line options, but a maximum of one
--oo _f_i_l_e_n_a_m_e option is allowed. The ..ffttnnlliissttrrcc or ..ccfflliissttrrcc file
cannot contain file names. Newline characters are silently converted
to blanks. The command line options are processed left to right, so
options included in the ..ffttnnlliissttrrcc or ..ccfflliissttrrcc file can be
overridden.
EEXXAAMMPPLLEESS
The following is an example of the cross-reference map, which is part
of the listing generated by ffttnnlliisstt:
Type Usage EqDSv Offset Home Name References
------ ----- ----- ------ ------ ------ --------------
Real 1-D Arr 2 Arg A 1 2 5=
Real 1-D Arr 1 Arg B 1 2 5
Real 1-D Arr 3 Arg C 1 2 5
Int64 Scalar - 0 Stack I 4= 5+
Int64 Scalar 4 Arg N 1 4
{Return} 7
Prioritized Reference Legend: "Nc" where "N" is the local line number
and "c" is one of "=-+.".
= means set, - means passed, + means multiple references, . means
INCLUDEd reference.
The following list explains each column:
TTyyppee The type of the entity being reported
UUssaaggee How the entity is being used. SSccaallaarr means a simple
(not dimensioned) variable, and 33--DD AArrrr means a three-
dimensional array.
EEqqDDSSvv Gives the EEQQUUIIVVAALLEENNCCEE, DDAATTAA, or SSAAVVEE status (if any) of
the entity.
OOffffsseett The offset of the entity from the base of its home.
For example, for an AArrgg, a 33 means it is the third
argument, and for a common block reference, a 77 means
it is 7 words from the base address of the common block
(which can be found from a load map).
HHoommee Indicates where the entity is located. For example,
AArrgg means it is an argument to this procedure; ssttaacckk
means it is on the stack for this procedure; //22// means
it is in common block 2 (see common block table), and
so on. Not all entities have a home.
NNaammee The variable name, or another reported cross reference
entity, such as {{RReettuurrnn}}.
RReeffeerreenncceess The line numbers at which the entity can be found. The
symbols following line numbers, such as == and ++, are
explained in the footnote following the cross-reference
table.
NNOOTTEESS
ffttnnlliisstt and ccfflliisstt output is not designed to be used as input to other
tools.
For more information about writing and using tools based on output
from an ff9900 compilation, see the _C_o_m_p_i_l_e_r _I_n_f_o_r_m_a_t_i_o_n _F_i_l_e (_C_I_F)
_R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, publication SR-2401. SR-2401, a Cray Research
publication, contains information for UNICOS and UNICOS/mk systems
only.
These commands display 132 characters per output line.
These commands perform limited EEQQUUIIVVAALLEENNCCEE analysis, which assumes
that if a local variable appears in an EEQQUUIIVVAALLEENNCCEE statement, it is
not subject to analysis (for example, uussee bbeeffoorree ddeeffiinniittiioonn).
These commands produce source listings, but they do not produce
reports for any subprograms that contain errors.
EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
The ffttnnlliisstt and ccfflliisstt commands check your environment for several
strings to help control its output. If the CCCCTTLL environment variable
is set to FFOORRTTRRAANN, Fortran-style carriage control (a 1 in column one)
initiates a new page; otherwise, the ASCII form-feed character is
used. The default is ASCII. If the LLPPPP environment variable is set
to an _i_n_t_e_g_e_r in the range 50 to 200, these commands put out a maximum
of _i_n_t_e_g_e_r lines per page. The default is 63 lines per page. To
override the LLPPPP or default value, use the --vv option. If the
FFTTNNLLIISSTTRRCC environment variable is set to OOFFFF or the CCFFLLIISSTTRRCC
environment variable is set to OOFFFF, all ..ffttnnlliissttrrcc and ..ccfflliissttrrcc files
are silently ignored.
RREETTUURRNN VVAALLUUEESS
The ffttnnlliisstt and ccfflliisstt commands return 0 on normal completion and
nonzero for abnormal termination.
BBUUGGSS
ffttnnlliisstt and ccfflliisstt accept Fortran program source files that end in ..FF
or ..FF9900, but some of the functionality described on this man page is
not present for files with ..FF and ..FF9900 suffixes.
SSEEEE AALLSSOO
ccfflliinntt(1), ffttnnlliinntt(1), ff9900(1)
_C_o_m_p_i_l_e_r _I_n_f_o_r_m_a_t_i_o_n _F_i_l_e (_C_I_F) _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, publication SR-2401
SR-2401, a Cray Research publication, describes the CIF only for
UNICOS and UNICOS/mk systems.
This man page is available only online.